// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "content/browser/fileapi/mock_file_change_observer.h"

#include "base/threading/thread_task_runner_handle.h"

namespace storage {

MockFileChangeObserver::MockFileChangeObserver()
    : create_file_count_(0)
    , create_file_from_count_(0)
    , remove_file_count_(0)
    , modify_file_count_(0)
    , create_directory_count_(0)
    , remove_directory_count_(0)
{
}

MockFileChangeObserver::~MockFileChangeObserver() { }

// static
ChangeObserverList MockFileChangeObserver::CreateList(
    MockFileChangeObserver* observer)
{
    ChangeObserverList list;
    return list.AddObserver(observer, base::ThreadTaskRunnerHandle::Get().get());
}

void MockFileChangeObserver::OnCreateFile(const FileSystemURL& url)
{
    create_file_count_++;
}

void MockFileChangeObserver::OnCreateFileFrom(const FileSystemURL& url,
    const FileSystemURL& src)
{
    create_file_from_count_++;
}

void MockFileChangeObserver::OnRemoveFile(const FileSystemURL& url)
{
    remove_file_count_++;
}

void MockFileChangeObserver::OnModifyFile(const FileSystemURL& url)
{
    modify_file_count_++;
}

void MockFileChangeObserver::OnCreateDirectory(const FileSystemURL& url)
{
    create_directory_count_++;
}

void MockFileChangeObserver::OnRemoveDirectory(const FileSystemURL& url)
{
    remove_directory_count_++;
}

} // namespace storage
